package dd.prog2.exercises.set03;

/**
 * Die (punktweise mathematische) Ableitung einer Funktion kann approximiert
 * werden durch f‘(x) = (f(x+delta) - f(x-delta)) / (2*delta) für ein
 * hinreichend kleines delta.
 */
public class Derivation extends Function {
	protected Function f;
	protected double dx;

	public Derivation(Function f, double dx) {
		this.f = f;
		this.dx = dx;
	}

	@Override
	protected double map(double x) {
		return (f.map(x + dx) - f.map(x - dx)) / (2 * dx);
	}

}
